/*
moxl - Modular XML Library
Copyright (c) 2007, Malcolm Sparks

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
package moxl.relaxng.patternnormalization.helpers;

import moxl.dom.MoxlElement;
import moxl.dom.XmlNamespaceContext;
import moxl.dom.raw.RawBackedElement;
import moxl.parser.ParserException;
import moxl.parser.XmlParser;
import moxl.raw.RawElement;
import moxl.raw.XmlResourceException;
import moxl.relaxng.schema.RelaxNgNamespace;
import moxl.relaxng.simplification.normalization.patterns.PatternNormalizer;
import moxl.tokenizer.TokenizerException;

public class Helper
{
	public MoxlElement normalizePattern(String xml) throws ParserException, TokenizerException, XmlResourceException
	{
		XmlParser parser = new XmlParser();
		RawElement rawElement = parser.parseString(xml);
		MoxlElement input = new RawBackedElement(rawElement, new XmlNamespaceContext(RelaxNgNamespace.NAMESPACE));
		PatternNormalizer normalizer = new PatternNormalizer();
		return normalizer.transform(input);
	}
}
